#ifndef CBALL_H
#define CBALL_H

#include <QObject>

#include <QColor>
#include <QPainter>
#include <QRect>
#include <QPoint>
#include <QStack>

#include "datastruct.h"

// 小球类
class CBall : public QObject
{
    Q_OBJECT
public:

    explicit CBall(int type, QObject *parent = 0);

    explicit CBall(const CBall &ball);

    CBall &operator=(const CBall &ball);

public:
    // 获取小球的类型
    int GetBallType();

    // 设定选中状态
    void setCheckState(bool checked);

    // 获取选中的状态
    bool getCheckState();

    // 绘制小球
    void drawBall(QPainter &painter, QRectF Rect);

private:

    // 通过小球的类型 设置小球的颜色
    QColor ColorIdxToColor(int colorType);

private:
    // 小球的类型
    int m_BallType;

    // 是否选中 选种时 闪烁
    int m_Checked;

    // 闪烁的状态
    int m_flashStatus;

};

//Q_DECLARE_METATYPE(CBall)
//Q_DECLARE_METATYPE(CBall*)


#endif // CBALL_H


